Application Program Interfaces provide a way for a platform (e.g., Facebook) to provide controls that developers of client applications can use to access a platform's features and data. APIs thus ensure that client applications will have access to the functions and data that the platform wishes for the client applications to have. However, APIs may change over time, resulting in a newer version of an API that differs from the earlier version of the API. The newer versions of the API may provide enhanced additional or otherwise different features or other benefits over the older API versions. Additionally, platforms may decide to cease supporting older API versions. Accordingly, developers of client applications that use the API may wish update their applications to use the newer version of the API.
Historically, developers of platforms with one or more APIs will publish a list of changes associated with each version of the platform's API(s). For example, when an API is upgraded from version 2.0 to version 2.1, a list of changes to calls (and potentially new or removed calls) will be published. When the API is upgraded again from version 2.1 to version 2.2, another list of changes will be published. Developers of client applications will read these lists of changes and determine what changes, if any, must be made to their client applications.
APIs may contain numerous calls, in some cases tens of thousands. Any of these calls may change from an earlier version of an API to a later version. However, client applications frequently only use a subset of these calls. For example, for an API with 10,000 calls, a particular client application may use only 50 such calls. Additionally, client application developers may not upgrade the client application software every time a platform API is updated. Potential reasons for this include not having time to update the client application or wishing to avoid having to upgrade all of the client application's users to a new version of the client application. Accordingly, when a client application developer wishes to upgrade his client application to a new version of the platform API, he needs to review multiple lists of changes to calls, including many calls that the client application does not use. Further, when the same call is changed in two (or more) versions, the client application developer would need to review multiple descriptions of changes to the same call requiring him to identify all the changes that are required. This process not only takes considerable time, but introduces the possibility of errors such as missing a change to a call a client application uses and not properly understanding the full scope of changes for a call that has undergone multiple changes. Additionally, when faced with numerous changes to calls that a client application uses, the client application's developer may wish to address the calls his client application uses most frequently first.